code: @DoesServiceRequest
      public void updateMessage(final CloudQueueMessage message, final int visibilityTimeoutInSeconds,
              final EnumSet<MessageUpdateFields> messageUpdateFields, QueueRequestOptions options,
              OperationContext opContext) throws StorageException {
          Utility.assertNotNull("message", message);
          Utility.assertNotNullOrEmpty("messageId", message.getId());
          Utility.assertNotNullOrEmpty("popReceipt", message.getPopReceipt());
  
          Utility.assertInBounds("visibilityTimeoutInSeconds", visibilityTimeoutInSeconds, 0,
                  QueueConstants.MAX_TIME_TO_LIVE_IN_SECONDS);
  
          if (opContext == null) {
              opContext = new OperationContext();
          }
  
          opContext.initialize();
          options = QueueRequestOptions.populateAndApplyDefaults(options, this.queueServiceClient);
  
          ExecutionEngine.executeWithRetry(this.queueServiceClient, this,
                  this.updateMessageImpl(message, visibilityTimeoutInSeconds, messageUpdateFields, options),
                  options.getRetryPolicyFactory(), opContext);
      }
docs: Updates a message in the queue, using the specified request options and operation context.
  
  @param message
  The {@link CloudQueueMessage} to update in the queue.
  
  @param visibilityTimeoutInSeconds
  Specifies the new visibility timeout for the message, in seconds.
  
  @param messageUpdateFields
  An <code>EnumSet</code> of {@link MessageUpdateFields} values that specifies which parts of the
  message are to be updated.
  
  @param options
  A {@link QueueRequestOptions} object that specifies any additional options for the request. Specifying
  <code>null</code> will use the default request options from the associated service client (
  {@link CloudQueueClient}).
  
  @param opContext
  An {@link OperationContext} object that represents the context for the current operation. This object
  is used to track requests to the storage service, and to provide additional runtime information about
  the operation.
  
  @throws StorageException
  If a storage service error occurred during the operation.