code: public List<ProcessorResult> handleWrite() throws ODataException {
          LOG.info("Handling transactional operations per each odata request.");
          List<ProcessorResult> resultList = new ArrayList<>();
  
          try {
              for (ChangeSetEntity changeSetEntity : changeSetEntities) {
                  ODataRequestContext odataRequestContext = changeSetEntity.getRequestContext();
                  ODataUri requestUri = odataRequestContext.getUri();
                  ODataRequest.Method method = odataRequestContext.getRequest().getMethod();
  
                  ProcessorResult result = null;
                  if (method == ODataRequest.Method.POST) {
                      result = handlePOST(odataRequestContext, requestUri, changeSetEntity);
                  } else if (method == ODataRequest.Method.PUT || method == ODataRequest.Method.PATCH) {
                      result = handlePutAndPatch(odataRequestContext, requestUri, changeSetEntity);
                  } else if (method == ODataRequest.Method.DELETE) {
                      result = handleDelete(odataRequestContext, requestUri, changeSetEntity);
                  }
                  resultList.add(result);
              }
  
              commitTransactions();
          } catch (ODataException e) {
              LOG.error("Transaction could not be processed, rolling back", e);
              rollbackTransactions();
              throw e;
          }
          return resultList;
      }
docs: Handles transactional operations for each parsed odata request.
  
  @return processor results