def create(self, throw_on_exists=False):
        """
        Creates a database defined by the current database object, if it
        does not already exist and raises a CloudantException if the operation
        fails.  If the database already exists then this method call is a no-op.

        :param bool throw_on_exists: Boolean flag dictating whether or
            not to throw a CloudantDatabaseException when attempting to
            create a database that already exists.

        :returns: The database object
        """
        if not throw_on_exists and self.exists():
            return self

        resp = self.r_session.put(self.database_url, params={
            'partitioned': TYPE_CONVERTERS.get(bool)(self._partitioned)
        })
        if resp.status_code == 201 or resp.status_code == 202:
            return self

        raise CloudantDatabaseException(
            resp.status_code, self.database_url, resp.text
        )
Creates a database defined by the current database object, if it
        does not already exist and raises a CloudantException if the operation
        fails.  If the database already exists then this method call is a no-op.

        :param bool throw_on_exists: Boolean flag dictating whether or
            not to throw a CloudantDatabaseException when attempting to
            create a database that already exists.

        :returns: The database object