The "lost update" problem relates to concurrent reads and updates to data, in a system where readers do not block writers. It is not necessary for the transactions to be exactly simultaneous.
- Session #1 reads Account A, gets 100.
- Session #2 reads Account A, gets 100.
- Session #2 updates Account A to 150 (+50) and commits.
- Session #1 updates Account A to 120 (+20) and commits.
In this scenario, because Session #1 does not know that another session has already modified the account, the update by Session #2 is overwritten ("lost").
There are several ways to solve this, e.g. version numbers or before-and-after compares.