docs: protected void setParameters(List<Object> params, PreparedStatement statement) throws SQLException {
          int i = 1;
          ParameterMetaData metaData = getParameterMetaDataSafe(statement);
          if (metaData != null) {
              if (metaData.getParameterCount() == 0 && params.size() == 1 && params.get(0) instanceof Map) {
                  Map paramsMap = (Map) params.get(0);
                  if (paramsMap.isEmpty()) return;
              }
              // GROOVY-8174: we'd like stricter checking here but many drivers currently in use just aren't consistent enough, so we log
              if (metaData.getParameterCount() != params.size()) {
                  LOG.warning("Found " + metaData.getParameterCount() + " parameter placeholders but supplied with " + params.size() + " parameters");
              }
          }
          for (Object value : params) {
              setObject(statement, i++, value);
          }
      }