docs: def create_table(self, table_name, fail_on_exist=False, timeout=None):
          '''
          Creates a new table in the storage account.
  
          :param str table_name:
              The name of the table to create. The table name may contain only
              alphanumeric characters and cannot begin with a numeric character.
              It is case-insensitive and must be from 3 to 63 characters long.
          :param bool fail_on_exist:
              Specifies whether to throw an exception if the table already exists.
          :param int timeout:
              The server timeout, expressed in seconds.
          :return:
              A boolean indicating whether the table was created. If fail_on_exist 
              was set to True, this will throw instead of returning false.
          :rtype: bool
          '''
          _validate_not_none('table', table_name)
          request = HTTPRequest()
          request.method = 'POST'
          request.host = self._get_host()
          request.path = '/Tables'
          request.query = [('timeout', _int_to_str(timeout))]
          request.headers = [_DEFAULT_CONTENT_TYPE_HEADER,
                             _DEFAULT_PREFER_HEADER,
                             _DEFAULT_ACCEPT_HEADER]
          request.body = _get_request_body(_convert_table_to_json(table_name))
  
          if not fail_on_exist:
              try:
                  self._perform_request(request)
                  return True
              except AzureHttpError as ex:
                  _dont_fail_on_exist(ex)
                  return False
          else:
              self._perform_request(request)
              return True