Transactions are the unit of atomicity and isolation.
These properties are realized by applying synchronisation and recovery based on containers. All changes to data within a transaction won't be visible to other transactions until the updating transaction commits. Each change will be undone if the transaction aborts. Locking is used, which employs shared and exclusive locks to prevent concurrency problems. If some containers are modified during the implicit transaction, the changes are made persistent, after all containers, which were opened for write access by the application, are closed.