Das Problem, das Sie beschreiben, heißt Write Skew.
Dafür sorgt im Prinzip die Transaktionsisolation SERIALIZEABLE, aber nicht in Oracle DB . Oracle bietet nur Snapshot-Isolation, selbst wenn Sie nach SERIALIZABLE fragen.
In Oracle besteht die einzige zuverlässige Lösung darin, eine Art Sperre zu verwenden. Dies muss nicht unbedingt eine Sperre auf eine Tabellenzeile sein, dafür können Sie auch Advisory-Sperren über DBMS_LOCK verwenden.