docs: public void parse(final InsertStatement insertStatement) {
          if (!lexerEngine.skipIfEqual(getCustomizedInsertKeywords())) {
              return;
          }
          lexerEngine.accept(DefaultKeyword.DUPLICATE);
          lexerEngine.accept(DefaultKeyword.KEY);
          lexerEngine.accept(DefaultKeyword.UPDATE);
          do {
              Column column = new Column(SQLUtil.getExactlyValue(lexerEngine.getCurrentToken().getLiterals()), insertStatement.getTables().getSingleTableName());
              if (shardingRule.isShardingColumn(column.getName(), column.getTableName())) {
                  throw new SQLParsingException("INSERT INTO .... ON DUPLICATE KEY UPDATE can not support on sharding column, token is '%s', literals is '%s'.",
                          lexerEngine.getCurrentToken().getType(), lexerEngine.getCurrentToken().getLiterals());
              }
              basicExpressionParser.parse(insertStatement);
              lexerEngine.accept(Symbol.EQ);
              if (lexerEngine.skipIfEqual(DefaultKeyword.VALUES)) {
                  lexerEngine.accept(Symbol.LEFT_PAREN);
                  basicExpressionParser.parse(insertStatement);
                  lexerEngine.accept(Symbol.RIGHT_PAREN);
              } else {
                  lexerEngine.nextToken();
              }
          } while (lexerEngine.skipIfEqual(Symbol.COMMA));
      }