code: def add_property(self, pred, obj):
          
          pred = Uri(pred)
          try:
              self[pred].append(obj)
          # except AttributeError:
          #     new_list = [self[pred]]
          #     new_list.append(obj)
          #     self[pred] = new_list
          except KeyError:
              try:
                  new_prop = self.properties[pred]
              except AttributeError:
                  self.properties = {}
                  self.add_property(pred, obj)
                  return
              except KeyError:
                  try:
                      new_prop = MODULE.rdfclass.properties[pred]
                  except KeyError:
                      new_prop = MODULE.rdfclass.make_property({},
                                                        pred, self.class_names)
                  try:
                      self.properties[pred] = new_prop
                  except AttributeError:
                      self.properties = {pred: new_prop}
              init_prop = new_prop(self, get_attr(self, "dataset"))
              setattr(self,
                      pred,
                      init_prop)
              self[pred] = init_prop
              self[pred].append(obj)
          if self.dataset:
              self.dataset.add_rmap_item(self, pred, obj)
docs: adds a property and its value to the class instance
  
          args:
              pred: the predicate/property to add
              obj: the value/object to add
              obj_method: *** No longer used.