Ezt mi használtuk többször, működő megoldás.
Annyi eltérés volt, hogy nekünk az OR maping miatt egy "version" mező volt amit az update where tartalmazott mindíg.
update ... set version=2 where recordid=xxxx and version=1
ha 0 sor volt updatelve valaki elhalászta előled a sort.