this interface enables applying a set of changes in one batch transaction.
An object implementing this interface allows other interfaces to change
its state locally. It will keep a list of pending changes until such changes
are committed or cancelled.
Only when they are explicitly committed will these changes take effect
persistently or globally.