docs: def set_unit_property(self, unit_id, property_name, value):
          '''This function adds a unit property data set under the given property
          name to the given unit.
  
          Parameters
          ----------
          unit_id: int
              The unit id for which the property will be set
          property_name: str
              The name of the property to be stored
          value
              The data associated with the given property name. Could be many
              formats as specified by the user.
          '''
          if isinstance(unit_id, (int, np.integer)):
              if unit_id in self.get_unit_ids():
                  if unit_id not in self._unit_properties:
                      self._unit_properties[unit_id] = {}
                  if isinstance(property_name, str):
                      self._unit_properties[unit_id][property_name] = value
                  else:
                      raise ValueError(str(property_name) + " must be a string")
              else:
                  raise ValueError(str(unit_id) + " is not a valid unit_id")
          else:
              raise ValueError(str(unit_id) + " must be an int")