code: public boolean add(P model) {
          if (null == model) return false;
  
          if (presentationModels.containsKey(model.getId())) {
              throw new IllegalArgumentException("There already is a PM with id " + model.getId());
          }
          boolean added = false;
          if (!presentationModels.containsValue(model)) {
              presentationModels.put(model.getId(), model);
              addPresentationModelByType(model);
              for (A attribute : model.getAttributes()) {
                  addAttributeById(attribute);
                  attribute.addPropertyChangeListener(Attribute.QUALIFIER_PROPERTY, ATTRIBUTE_WORKER);
                  if (!StringUtil.isBlank(attribute.getQualifier())) addAttributeByQualifier(attribute);
              }
              fireModelStoreChangedEvent(model, ModelStoreEvent.Type.ADDED);
              added = true;
          }
          return added;
      }
docs: Adds a presentation model to this store.<br/>
  Presentation model ids should be unique. This method guarantees this condition by disallowing
  models with duplicate ids to be added.
  
  @param model the model to be added.
  @return if the add operation was successful or not.
  @throws IllegalArgumentException if a presentation model with the model's ID is already in the model store.