In that case, just be careful when you do that MERGE - because you'll lock all of the rows, which isn't much different.
In that instance, modify your PLSQL program to do FORALL so that you are updating in (say) batches of 1000.
See
http://www.oracle.com/technetwork/issue-archive/2012/12-sep/o52plsql-1709862.html for some examples.