ENH: add primitive transaction support

reduces time to register and update 300 benchmarks from a minute to less
than a second.