code: @Override
      public void visitMethod(Method obj) {
          Attribute[] attributes = obj.getAttributes();
          for (Attribute a : attributes) {
              if ("Signature".equals(a.getName())) {
                  TemplateSignature ts = parseSignatureAttribute((Signature) a);
                  if (ts != null) {
                      for (TemplateItem templateParm : ts.templateParameters) {
                          if (!ts.signature.contains(Values.SIG_GENERIC_TEMPLATE + templateParm.templateType + Values.SIG_QUALIFIED_CLASS_SUFFIX_CHAR)
                                  && !isTemplateParent(templateParm.templateType, ts.templateParameters)) {
                              bugReporter.reportBug(new BugInstance(this, BugType.UMTP_UNBOUND_METHOD_TEMPLATE_PARAMETER.name(), NORMAL_PRIORITY).addClass(this)
                                      .addMethod(this).addString("Template Parameter: " + templateParm.templateType));
                              return;
                          }
                      }
                  }
                  return;
              }
          }
      }
docs: implements the visitor to find methods that declare template parameters that are not bound to any parameter.
  
  @param obj
  the context object of the currently parsed method