code: public boolean insertAfter(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[] childrenOfParent = parent.children
                      .toArray(new AbstractHtml[parent.children.size()]);
  
              for (int i = 0; i < childrenOfParent.length; i++) {
  
                  if (equals(childrenOfParent[i])) {
  
                      if (i < (childrenOfParent.length - 1)) {
  
                          return childrenOfParent[i + 1]
                                  .insertBefore(childrenOfParent, abstractHtmls);
  
                      } else {
                          parent.appendChildrenLockless(abstractHtmls);
                      }
  
                      result = true;
                  }
  
              }
  
          } finally {
              lock.unlock();
          }
          final PushQueue pushQueue = sharedObject.getPushQueue(ACCESS_OBJECT);
          if (pushQueue != null) {
              pushQueue.push();
          }
          return result;
      }
docs: Inserts the given tags after this tag. There must be a parent for this
  method tag. <br>
  Note : This {@code insertAfter} method might be bit slower (in terms of
  nano optimization) than {@code insertBefore} method as it internally uses
  {@code insertBefore} method. This will be improved in the future version.
  
  @param abstractHtmls
  to insert after this tag
  @return true if inserted otherwise false.
  @since 2.1.6
  @author WFF