locking with rollback on conflict implemented
unlock implemented