code: private void insert(Model target, BioPAXElement bpe)
  	{
  		// do nothing if you already inserted this
  		if (!target.contains(bpe))
  		{
  			//if there is an identical (in fact, "equal") object
  			BioPAXElement ibpe = target.getByID(bpe.getUri());
  			if (ibpe != null && ibpe.equals(bpe))
  			/* - ibpe.equals(bpe) can be 'false' here, because, 
  			 * even though the above !target.contains(bpe) is true,
  			 * it probably compared objects using '==' operator
  			 * (see the ModelImpl for details)
  			 */
  			{
  				updateObjectFields(bpe, ibpe, target);
  				// We have a merged element, add it into the tracker
  				mergedElements.add(ibpe);
  			}
  			else
  			{
  				target.add(bpe);
  				this.addIntoEquivalanceMap(bpe);
  				traverser.traverse(bpe, target);
  				// We have a new element, add it into the tracker
  				addedElements.add(bpe);
  			}
  		}
  	}
docs: Inserts a BioPAX element into the <em>target</em> model if it does not contain an equivalent;
  but if does, than it updates the equivalent using this element's values.
  
  @param target model into which bpe will be inserted
  @param bpe    BioPAX element to be inserted into target