code: def unit_of_work(metadata=None, timeout=None):
      
  
      def wrapper(f):
  
          def wrapped(*args, **kwargs):
              return f(*args, **kwargs)
  
          wrapped.metadata = metadata
          wrapped.timeout = timeout
          return wrapped
  
      return wrapper
docs: This function is a decorator for transaction functions that allows
      extra control over how the transaction is carried out.
  
      For example, a timeout (in seconds) may be applied::
  
          @unit_of_work(timeout=25.0)
          def count_people(tx):
              return tx.run("MATCH (a:Person) RETURN count(a)").single().value()