code: @Override
      public void setStatementParameters(PreparedStatement statement, boolean setDefaultId) throws SQLException {
          int oneBasedIndex = 1;
          if (!setDefaultId) statement.setInt(oneBasedIndex++, id);
          statement.setString(oneBasedIndex++, pattern_id);
          statement.setString(oneBasedIndex++, route_id);
          statement.setString(oneBasedIndex++, name);
          // Editor-specific fields
          setIntParameter(statement, oneBasedIndex++, direction_id);
          // Note: pattern#use_frequency is set in JdbcGtfsSnapshotter here:
          // https://github.com/conveyal/gtfs-lib/blob/0c6aca98a83d534853b74011e6cc7bf376592581/src/main/java/com/conveyal/gtfs/loader/JdbcGtfsSnapshotter.java#L196-L211
          setIntParameter(statement, oneBasedIndex++, INT_MISSING); // use_frequency
          // FIXME: Shape set might be null?
          statement.setString(oneBasedIndex++, associatedShapes.iterator().next());
      }
docs: Sets the parameters for a prepared statement following the parameter order defined in
  {@link com.conveyal.gtfs.loader.Table#PATTERNS}. JDBC prepared statement parameters use a one-based index.