code: private <T extends AmazonWebServiceRequest> Request<T> marshall(
              T awsRequest,
              Marshaller<Request<T>, T> marshaller,
              AWSRequestMetrics awsRequestMetrics) {
          awsRequestMetrics.startEvent(Field.RequestMarshallTime);
          try {
              return marshaller.marshall(awsRequest);
          } catch (AmazonClientException ex) {
              throw ex;
          } catch (Exception ex) {
              throw new AmazonClientException(ex.getMessage(), ex);
          } finally {
              awsRequestMetrics.endEvent(Field.RequestMarshallTime);
          }
      }
docs: Returns a {@link Request} marshalled from the given AWS request using
  the specified marshaller, recording the respective
  {@link Field#RequestMarshallTime} predefined metrics.