code: public BaseBo setAttribute(String attrName, Object value, boolean triggerChange) {
          Lock lock = lockForWrite();
          try {
              if (value == null) {
                  attributes.remove(attrName);
              } else {
                  attributes.put(attrName, value);
              }
              if (triggerChange) {
                  triggerChange(attrName);
              }
              markDirty();
              return this;
          } finally {
              lock.unlock();
          }
      }
docs: Set a BO's attribute.
  
  @param attrName
  @param value
  @param triggerChange
  if set to {@code true} {@link #triggerChange(String)} will be
  called
  @return
  @since 0.7.1