Create DB Transaction manually (without a context manager)
Peewee provides such nice facilities for transaction management (and rollback) ... It's a shame you're not using them.

If you want to open a "manual" block without using the context manager, just:

```python
manual = db.manual_commit()
manual.__enter__()
```

To close:

```python
manual.__exit__(None, None, None)
``` Thank you, this should work. I feel ashamed I missed this yesterday No worries!
Hey-o. I've been trying to wrap all my pytest unit tests in a transaction and then roll them back but have failed in doing so.

The guide I've been trying to follow has been this one: http://techblog.thescore.com/2015/06/25/database-transactions-with-pytest/

The problem here is that I write my transaction creating code in a `pytest_fixture` but the context manager exits before we manage to call the `fin()` function to close the transaction
```
@pytest.fixture(autouse=True)
    def _wrap_test_in_transaction(self, request):
        with db.manual_commit():
            db.begin()
            def fin():
                db.rollback()

            request.addfinalizer(fin)
```

The ability to open a transaction without a context manager would fix this problem for me