docs: def add_property(self, name, fn, cached=True):
          """Adds a property to the Context.
  
          See `Mapper.add_ctx_property`, which uses this method to install
          the properties added on the Mapper level.
          """
          if name in self.__properties:
              raise KeyError("Trying to add a property '%s' that already exists on this %s object." % (name, self.__class__.__name__))
          self.__properties[name] = (fn, cached)