code: public static void generate(TypeSpec.Builder classBuilder, SQLiteModelMethod method) {
  		InsertType insertResultType = detectInsertType(method);
  
  		// if true, field must be associate to ben attributes
  		TypeName returnType = method.getReturnClass();
  
  		AssertKripton.failWithInvalidMethodSignException(insertResultType == null, method);
  
  		// generate method code
  		MethodSpec.Builder methodBuilder = MethodSpec.methodBuilder(method.getName()).addAnnotation(Override.class)
  				.addModifiers(Modifier.PUBLIC);
  
  		ParameterSpec parameterSpec;
  		for (Pair<String, TypeName> item : method.getParameters()) {
  			parameterSpec = ParameterSpec.builder(item.value1, item.value0).build();
  			methodBuilder.addParameter(parameterSpec);
  		}
  		methodBuilder.returns(returnType);
  
  		// fail if we use jql to INSERT_BEAN with operation of INSERT-FOR-SELECT
  		// AssertKripton.failWithInvalidMethodSignException(insertResultType ==
  		// InsertType.INSERT_BEAN && method.jql.containsSelectOperation, method,
  		// "INSERT-FROM-SELECT SQL can not be used with method sign");
  
  		// generate inner code
  		methodBuilder.addComment("Specialized Insert - $L - BEGIN", insertResultType.getClass().getSimpleName());
  		insertResultType.generate(classBuilder, methodBuilder, method, returnType);
  		methodBuilder.addComment("Specialized Insert - $L - END", insertResultType.getClass().getSimpleName());
  
  		MethodSpec methodSpec = methodBuilder.build();
  		classBuilder.addMethod(methodSpec);
  
  		if (method.contentProviderEntryPathEnabled) {
  			// we need to generate insert for content provider to
  			generateInsertForContentProvider(classBuilder, method, insertResultType);
  		}
  
  	}
docs: Generate.
  
  @param classBuilder
  the class builder
  @param method
  the method