Actually I could just reexecute the update statement. This would be similar to a serializable transaction without complicating things and without resulting in more false positives due to longer gap locking.