Problemet du beskriver hedder Skriv skævt.
I princippet tager SERIELIZEABLE transaktionsisolering sig af dette, men ikke i Oracle DB . Oracle giver kun snapshot-isolering, selv når du beder om SERIALIZABLE.
I Oracle er stort set den eneste pålidelige løsning at bruge en form for låsning. Dette behøver ikke nødvendigvis at være en lås på en tabelrække, du kan også bruge rådgivende låse via DBMS_LOCK til det.