We have optimistic record locking, which means the record is not locked while a user edits it in the UI.
When saving, we re-read the record, compare it to the version we have read, and when they are different, we report that the record was changed by someone else
If it was not changed by someone else, we lock it, and update it.