Il problema che stai descrivendo si chiama Write Skew.
In linea di principio, l'isolamento delle transazioni SERIALIZEABLE si occupa di questo, ma non in Oracle DB . Oracle fornisce solo l'isolamento degli snapshot, anche quando richiedi SERIALIZABLE.
In Oracle, praticamente l'unica soluzione affidabile è utilizzare una sorta di blocco. Questo non deve necessariamente essere un blocco su una riga della tabella, puoi anche utilizzare i blocchi di avviso tramite DBMS_LOCK per questo.