45.6. Trigger Functions
  When a function is used as a trigger, the dictionary
  
   TD
  
  contains trigger-related values:
 
- 
    
     TD["event"]
- 
    contains the event as a string: INSERT,UPDATE,DELETE, orTRUNCATE.
- 
    
     TD["when"]
- 
    contains one of BEFORE,AFTER, orINSTEAD OF.
- 
    
     TD["level"]
- 
    contains ROWorSTATEMENT.
- 
    
     TD["new"]
 TD["old"]
- 
    For a row-level trigger, one or both of these fields contain the respective trigger rows, depending on the trigger event. 
- 
    
     TD["name"]
- 
    contains the trigger name. 
- 
    
     TD["table_name"]
- 
    contains the name of the table on which the trigger occurred. 
- 
    
     TD["table_schema"]
- 
    contains the schema of the table on which the trigger occurred. 
- 
    
     TD["relid"]
- 
    contains the OID of the table on which the trigger occurred. 
- 
    
     TD["args"]
- 
    If the CREATE TRIGGERcommand included arguments, they are available inTD["args"][0]toTD["args"][.n-1]
  If
  
   TD["when"]
  
  is
  
   BEFORE
  
  or
  
   INSTEAD OF
  
  and
  
   TD["level"]
  
  is
  
   ROW
  
  , you can
   return
  
   None
  
  or
  
   "OK"
  
  from the
   Python function to indicate the row is unmodified,
  
   "SKIP"
  
  to abort the event, or if
  
   TD["event"]
  
  is
  
   INSERT
  
  or
  
   UPDATE
  
  you can return
  
   "MODIFY"
  
  to indicate you've modified the new row.
   Otherwise the return value is ignored.