I don't like the idea of beginning the transaction separately. It forces to check the state in all methods to know whether they are allowed or no in this state, and it creates a big complexity to handle the beginning of transactions, to register them in the right order.

@deeky666 regarding your request of an atomic operation independant of any running transaction, what is the support of such feature by the different platforms ?