docs: @Override
      VoltXMLElement voltGetStatementXML(Session session)
      throws org.hsqldb_voltpatches.HSQLInterface.HSQLParseException
      {
          VoltXMLElement xml;
          switch (type) {
  
          case StatementTypes.INSERT :
              xml = new VoltXMLElement("insert");
  
              assert(insertExpression != null || queryExpression != null);
  
              if (queryExpression == null) {
              if (insertExpression.nodes.length > 1) {
                  throw new org.hsqldb_voltpatches.HSQLInterface.HSQLParseException(
                      "VoltDB does not support multiple rows in the INSERT statement VALUES clause. Use separate INSERT statements.");
              }
                  voltAppendTargetColumns(session, insertColumnMap, insertExpression.nodes[0].nodes, xml);
              } else {
                  voltAppendTargetColumns(session, insertColumnMap, null, xml);
                  VoltXMLElement child = voltGetXMLExpression(queryExpression, parameters, session);
                  xml.children.add(child);
              }
              break;
  
          case StatementTypes.UPDATE_CURSOR :
          case StatementTypes.UPDATE_WHERE :
              xml = new VoltXMLElement("update");
              voltAppendTargetColumns(session, updateColumnMap, updateExpressions, xml);
              voltAppendChildScans(session, xml);
              voltAppendCondition(session, xml);
              break;
  
          case StatementTypes.DELETE_CURSOR :
          case StatementTypes.DELETE_WHERE :
              xml = new VoltXMLElement("delete");
              // DELETE has no target columns
              voltAppendChildScans(session, xml);
              voltAppendCondition(session, xml);
              voltAppendSortAndSlice(session, xml);
              break;
  
          case StatementTypes.MIGRATE_WHERE :
              xml = new VoltXMLElement("migrate");
              voltAppendChildScans(session, xml);
              voltAppendCondition(session, xml);
              break;
  
          default:
              throw new org.hsqldb_voltpatches.HSQLInterface.HSQLParseException(
                  "VoltDB does not support DML statements of type " + type);
          }
  
          voltAppendParameters(session, xml, parameters);
          xml.attributes.put("table", targetTable.getName().name);
          return xml;
      }