code: public boolean addDataUsage(DataAttribute attribute, DataUsage usage) throws ParameterException, LockingException {
                  Validate.notNull(attribute);
  
                  if (isFieldLocked(EntryField.DATA)) {
                          if (!dataUsage.containsKey(attribute)) {
                                  throw new LockingException(EntryField.DATA);
                          }
                          return false;
                  } else {
                          if (dataUsage.get(attribute) == null) {
                                  dataUsage.put(attribute, new HashSet<>());
                          }
                          if (usage != null) {
                                  dataUsage.get(attribute).add(usage);
                          }
                          return true;
                  }
          }
docs: Adds the given attribute to the list of attributes
  
  @param attribute The attribute to add.
  @param usage The data usage
  @throws ParameterException if the given attribute or usage is
  <code>null</code>.
  @throws LockingException if the field INPUT_DATA is locked <br>
  and the attribute is not already contained in {@link #dataUsage}.
  @return <code>true</code> if {@link #dataUsage} was modified;<br>
  <code>false</code> otherwise.