Optimistic locking detects conflicting concurrent modifications by checking an entity version instead of acquiring an exclusive lock in advance. It addresses the risk that concurrent units of work change the same data. section 11.2.1 section 11.0
The lost-update diagram shows the conflict to look for: two transactions update the same data without sufficient isolation. section 11.2.1
Versioning is one consideration when choosing a database isolation level, not a substitute for that choice. The appropriate level depends on the application scenario: too much isolation can limit scalability, while too little can leave bugs that appear only under heavy load. Avoid read uncommitted for ordinary application use because another transaction can act on changes that are later rolled back. section 11.2.1

