Locking is the last thing I have to implement in my project.
Would this be an acceptable approach:
From the server, assign clients an ID, store this ID in something like a TreeSet. When the client goes to make an update to the db (book Seats) store the client id, along with the the record being updated, which will indicate a locked record. Then only that client will be allowed to unlock that record.
Then the issue of what happens if a client dies. During times when the server isn't busy run a lower priority thread to verify the existence of clients, then check the for the existence of any locks by non-existent clients and remove.
Any suggestions/comments welcomed...