docs: @Override
    public void execute(final TSDB tsdb, final HttpQuery query) 
      throws IOException {
      http_requests.incrementAndGet();
      
      // only accept POST
      if (query.method() != HttpMethod.POST) {
        throw new BadRequestException(HttpResponseStatus.METHOD_NOT_ALLOWED, 
            "Method not allowed", "The HTTP method [" + query.method().getName() +
            "] is not permitted for this endpoint");
      }
  
      final List<IncomingDataPoint> dps;
      //noinspection TryWithIdenticalCatches
      try {
        checkAuthorization(tsdb, query);
        dps = query.serializer()
                .parsePutV1(IncomingDataPoint.class, HttpJsonSerializer.TR_INCOMING);
      } catch (BadRequestException e) {
        illegal_arguments.incrementAndGet();
        throw e;
      } catch (IllegalArgumentException e) {
        illegal_arguments.incrementAndGet();
        throw e;
      }
      processDataPoint(tsdb, query, dps);
    }