This implements a simple Pessimistic Lock Manager for out-of-database, in-JVM row locking.

If you need distributed locking (much harder!), see https://dzone.com/articles/distributed-locks-are-dead-long-live-distributed-l