We should allow to start a new nested write transaction within an already open write transaction.
When a nested transaction is committed, the modifications should only propagate to next outer transaction.
When the inner transaction is rolled back, only the modifications of that inner transaction should be discarded and the modifications of any previous nested transactions as well as the previous modifications in the outer transaction should remain.
When an outer transaction is rolled back, then all modifications of all inner transactions should be discarded.
We should allow to start a new nested write transaction within an already open write transaction.