Sets up a context where all the statements within it are ran within
        a single database transaction. For internal use only.

def transaction(self):
        """
        Sets up a context where all the statements within it are ran within
        a single database transaction. For internal use only.
        """
        # The idea here is to fake the nesting of transactions. Only when
        # we've gotten back to the topmost transaction context do we actually
        # commit or rollback.
        with self.mdr:
            try:
                self._depth += 1
                yield self
                self._depth -= 1
            except self.mdr.OperationalError:
                # We've lost the connection, so there's no sense in
                # attempting to roll back back the transaction.
                self._depth -= 1
                raise
            except:
                self._depth -= 1
                if self._depth == 0:
                    self.mdr.rollback()
                raise
            if self._depth == 0:
                self.mdr.commit()