code: public final synchronized void addVetoableChangeListener(
              String propertyName,
              VetoableChangeListener listener) {
          if (listener == null) {
              return;
          }
          if (vetoSupport == null) {
              vetoSupport = new VetoableChangeSupport(this);
          }
          vetoSupport.addVetoableChangeListener(propertyName, listener);
      }
docs: Adds a VetoableChangeListener to the listener list for a specific property. The specified
  property may be user-defined.<p>
  
  Note that if this Model is inheriting a bound property, then no event will be fired in
  response to a change in the inherited property.<p>
  
  If listener is {@code null}, no exception is thrown and no action is performed.
  
  @param propertyName one of the property names listed above
  @param listener the VetoableChangeListener to be added
  
  @see #removeVetoableChangeListener(String, VetoableChangeListener)
  @see #addVetoableChangeListener(String, VetoableChangeListener)
  @see #getVetoableChangeListeners(String)