code: public <RESP extends J4pResponse<REQ>, REQ extends J4pRequest> List<RESP> execute(List<REQ> pRequests,
                                                                                        Map<J4pQueryParameter,String> pProcessingOptions,
                                                                                        J4pResponseExtractor pResponseExtractor)
              throws J4pException {
          try {
              HttpResponse response = httpClient.execute(requestHandler.getHttpRequest(pRequests,pProcessingOptions));
              JSONAware jsonResponse = extractJsonResponse(null, response);
  
              verifyBulkJsonResponse(jsonResponse);
  
              return this.<RESP, REQ>extractResponses(jsonResponse, pRequests, pResponseExtractor);
          } catch (IOException e) {
              throw mapException(e);
          } catch (URISyntaxException e) {
              throw mapException(e);
          }
      }
docs: Execute multiple requests at once. All given request will result in a single HTTP request where it gets
  dispatched on the agent side. The results are given back in the same order as the arguments provided.
  
  @param pRequests requests to execute
  @param pProcessingOptions processing options to use
  @param pResponseExtractor use this for custom extraction handling
  @param <RESP> response type
  @param <REQ> request type
  @return list of responses, one response for each request
  @throws J4pException when an communication error occurs