### Apache Airflow version

Other Airflow 2 version (please specify below)

### What happened

HttpAsyncHook with method='PUT' and data is not supported. As far as I understood PUT is not in the [list of available methods](https://github.com/apache/airflow/blob/main/airflow/providers/http/hooks/http.py#L368) for passing kwarg `json=data`

### What you think should happen instead

_No response_

### How to reproduce

generate some PUT async hook runs with some data and await them:
```python
http_async_hook = HttpAsyncHook(method='PUT', http_conn_id='some_conn_id')
hook_run_1 = http_async_hook.run(
    endpoint=f'/some/endpoint/{some_data_1["id"]}',
    data=some_data_1
)
hook_run_2 = http_async_hook.run(
    endpoint=f'/some/endpoint/{some_data_2["id"]}',
    data=some_data_2
)
tasks = [hook_run_1, hook_run_2]
responses = await asyncio.gather(*tasks)
```

### Operating System

NAME="Linux Mint" VERSION="21.2 (Victoria)" ID_LIKE="ubuntu debian"VERSION_ID="21.2" UBUNTU_CODENAME=jammy

### Versions of Apache Airflow Providers

apache-airflow==2.7.0
apache-airflow-providers-http==4.6.0

### Deployment

Docker-Compose

### Deployment details

_No response_

### Anything else

_No response_

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

"""Run the hook with retry.
        This is useful for connectors which might be disturbed by intermittent
        issues and should not instantly fail.
        :param _retry_args: Arguments which define the retry behaviour.
            See Tenacity documentation at https://github.com/jd/tenacity
        .. code-block:: python
            hook = HttpHook(http_conn_id="my_conn", method="GET")
            retry_args = dict(
                wait=tenacity.wait_exponential(),
                stop=tenacity.stop_after_attempt(10),
                retry=tenacity.retry_if_exception_type(Exception),
            )
            hook.run_with_advanced_retry(endpoint="v1/test", _retry_args=retry_args)
        """
        self._retry_obj = tenacity.Retrying(**_retry_args)
        return self._retry_obj(self.run, *args, **kwargs)
    def url_from_endpoint(self, endpoint: str | None) -> str:
        """Combine base url with endpoint."""
        if self.base_url and not self.base_url.endswith("/") and endpoint and not endpoint.startswith("/"):
            return self.base_url + "/" + endpoint
        return (self.base_url or "") + (endpoint or "")
    def test_connection(self):
        """Test HTTP Connection."""
        try:
            self.run()
            return True, "Connection successfully tested"
        except Exception as e:
            return False, str(e)
class HttpAsyncHook(BaseHook):