Denise,
Optimistic buffering does not require that the user ever see a problem. You can resolve confilcts down to the field level using CURVAL() OLDVAL() and the current buffer value and only involve the user when they have changed the same field that someone else has changed.
You also need to consider the likelihood that two users will affect the same record at the same time versus consumming system resources for locks all over the place when you will most likely never need them.