In order to do this, you have to decide on how to arbitrate deadlocks. If user A sets the name field in the work object to "Mary", and user B sets the name field to "John", and they attempt to do this simultaneously, how do you want this to work? Do you want whoever touches it last to "win"? Do you want the 2nd of the simultaneous inserts to fail? How do you want it to fail?
Before you can implement something, you have to know how you want it to work. Even if you use optimistic locking, so that the lock is only grabbed at the last possible instant, you still want to know if by writing "Mary" you are overwriting "John" which was inserted 1 second earlier.
This is not an easy thing to do, and a lot depends upon what you expect from these collaborating operators. Can more than 2 users work on the case at the same time? You need to think this out very carefully.