code: def collect_consequences(self):
          
          consequences = {self.key()}
          for relation in self.referenced_by.values():
              consequences.update(relation.collect_consequences())
          return consequences
docs: Recursively collect a set of _ReferenceKeys that would
          consequentially get dropped if this were dropped via
          "drop ... cascade".
  
          :return Set[_ReferenceKey]: All the relations that would be dropped