code: public boolean insertBefore(final AbstractHtml... abstractHtmls) {
  
          if (parent == null) {
              throw new NoParentException("There must be a parent for this tag.");
          }
  
          final Lock lock = sharedObject.getLock(ACCESS_OBJECT).writeLock();
          boolean result = false;
          try {
              lock.lock();
  
              final AbstractHtml[] removedParentChildren = parent.children
                      .toArray(new AbstractHtml[parent.children.size()]);
  
              result = insertBefore(removedParentChildren, abstractHtmls);
          } finally {
              lock.unlock();
          }
          final PushQueue pushQueue = sharedObject.getPushQueue(ACCESS_OBJECT);
          if (pushQueue != null) {
              pushQueue.push();
          }
          return result;
      }
docs: Inserts the given tags before this tag. There must be a parent for this
  method tag.
  
  @param abstractHtmls
  to insert before this tag
  @return true if inserted otherwise false.
  @since 2.1.1
  @author WFF