class SQLBulkArgsParseElement extends SQLArgsParseElement {

    @Override
    public void parse(XContentParser parser, SQLRequestParseContext context) throws Exception {
        XContentParser.Token token = parser.currentToken();
        if (token != XContentParser.Token.START_ARRAY) {
            throw new SQLParseSourceException("Field [" + parser.currentName() + "] has an invalid value");
        }
        context.bulkArgs(parseSubArrays(parser));
    }

    private List<List<Object>> parseSubArrays(XContentParser parser) throws IOException {<FILL_FUNCTION_BODY>}
}

        XContentParser.Token token;
        ArrayList<List<Object>> bulkArgs = new ArrayList<>();
        while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) {
            if (token == XContentParser.Token.START_ARRAY) {
                bulkArgs.add(parseSubArray(parser));
            } else {
                throw new SQLParseSourceException("Field [" + parser.currentName() + "] has an invalid value");
            }
        }
        return bulkArgs;
    
<methods>public void parse(org.elasticsearch.common.xcontent.XContentParser, io.crate.action.sql.parser.SQLRequestParseContext) throws java.lang.Exception<variables>