def _save(self, expiration_time): q = None try: q = SqlQuery(self._db, 'sessions', SESSION_TABLE, trans=True) q.delete({'id': self.id}) data = pickle.dumps((self._data, expiration_time), self._proto) q.insert((self.id, base64.b64encode(data), expiration_time)) q.commit() except Exception: # pylint: disable=broad-except if q: q.rollback() raise