code: def transaction_retry(max_retries=1):
      
      def _outer(fun):
  
          @wraps(fun)
          def _inner(*args, **kwargs):
              _max_retries = kwargs.pop('exception_retry_count', max_retries)
              for retries in count(0):
                  try:
                      return fun(*args, **kwargs)
                  except Exception:   # pragma: no cover
                      # Depending on the database backend used we can experience
                      # various exceptions. E.g. psycopg2 raises an exception
                      # if some operation breaks the transaction, so saving
                      # the task result won't be possible until we rollback
                      # the transaction.
                      if retries >= _max_retries:
                          raise
                      try:
                          rollback_unless_managed()
                      except Exception:
                          pass
          return _inner
  
      return _outer
docs: Decorator for methods doing database operations.
  
      If the database operation fails, it will retry the operation
      at most ``max_retries`` times.