Because it does not help when checking the success of the transaction.
```
In [24]: zk.exists("/failed/on/transaction") is None
Out[24]: True

In [25]: with zk.transaction() as tr:
   ....:        tr.create("/failed/on/transaction")
   ....: 

In [26]: zk.exists("/failed/on/transaction") is None
Out[26]: True
```
I do not understand what they need in the form in which they are implemented.
```
    def __enter__(self):
        return self

    def __exit__(self, exc_type, exc_value, exc_tb):
        """Commit and cleanup accumulated transaction data."""
        if not exc_type:
            self.commit() # Y U NO CHECK THE RETURN VALUE?! :-)
```