Update lab 2 to use transactions, both declarative and programmatic