<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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
        )