A lost update occurs when

two SELECT statements that select the same data get different values because another transaction has updated the data in the time between the two statements

two transactions select the same row and then update the row based on the values originally selected

a transaction selects data that isn't committed by another transaction

you perform an update on a set of rows when another transaction is performing an insert that affects one or more rows in that same set of rows