Oracle manages database resources through LOCKING mechanism.
These locks are usually managed by the system and are released on commit or rollback of a transaction.
HOWEVER, Oracle has provided this FUNCTIONALITY to the users so that they can CREATE user defined locks.
These locks are similar to system created locks in functionality but are not released automatically when transaction commits or rollbacks. Therefore, a user has to be EXTREMELY careful while using user defined locks.