code: def delete(self, **context):
          
          if not self.isRecord():
              return 0
  
          event = orb.events.DeleteEvent(record=self, context=self.context(**context))
          if self.processEvent(event):
              self.onDelete(event)
  
          if event.preventDefault:
              return 0
  
          if self.__delayed:
              self.__delayed = False
              self.read()
  
          with WriteLocker(self.__dataLock):
              self.__loaded.clear()
  
          context = self.context(**context)
          conn = context.db.connection()
          _, count = conn.delete([self], context)
  
          # clear out the old values
          if count == 1:
              col = self.schema().column(self.schema().idColumn())
              with WriteLocker(self.__dataLock):
                  self.__values[col.name()] = (None, None)
  
          return count
docs: Removes this record from the database.  If the dryRun \
          flag is specified then the command will be logged and \
          not executed.
  
          :note       From version 0.6.0 on, this method now accepts a mutable
                      keyword dictionary of values.  You can supply any member
                      value for either the <orb.LookupOptions> or
                      <orb.Context>, as well as the keyword 'lookup' to
                      an instance of <orb.LookupOptions> and 'options' for
                      an instance of the <orb.Context>
  
          :return     <int>