It's a bad one.
One way is to use "select for update" or similar to make sure that when the data is loaded you lock the rows. This is however VERY BAD as it will lead ALMOST CERTAINLY to poor throughput and even deadlock.
There are several ways. If you are using 3.0 then you can use client side interceptors to do validation on the client. If the data depends on server side stuff then you want to reach it and then do validation as they set (or are done setting if it is a complex validation) and then recheck as you write.