code: @DoesServiceRequest
      public boolean createIfNotExists(TableRequestOptions options, OperationContext opContext) throws StorageException {
          options = TableRequestOptions.populateAndApplyDefaults(options, this.tableServiceClient);
  
          boolean exists = this.exists(true, options, opContext);
          if (exists) {
              return false;
          }
          else {
              try {
                  this.create(options, opContext);
                  return true;
              }
              catch (StorageException e) {
                  if (e.getHttpStatusCode() == HttpURLConnection.HTTP_CONFLICT
                          && StorageErrorCodeStrings.TABLE_ALREADY_EXISTS.equals(e.getErrorCode())) {
                      return false;
                  }
                  else {
                      throw e;
                  }
              }
          }
      }
docs: Creates the table in the storage service with the specified request options and operation context, if it does not
  already exist.
  
  @param options
  A {@link TableRequestOptions} 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 CloudTableClient}).
  @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.
  
  @return <code>true</code> if the table did not already exist and was created; otherwise <code>false</code> .
  
  @throws StorageException
  If a storage service error occurred during the operation.