### Apache Airflow Provider(s)

amazon

### Versions of Apache Airflow Providers



apache-airflow-providers-amazon | 2.4.0

### Apache Airflow version

2.2.3 (latest released)

### Operating System

Amazon Linux 2

### Deployment

MWAA

### Deployment details

_No response_

### What happened

Sagemaker Processing Operator no longer honors the `action_if_job_exists` param and always fails creation of a new processing job is a job with the name already exists. 

This happens because in a recent change, the function responsible for executing the job no longer honors the increment setting:

Change that breaks the increment: https://github.com/apache/airflow/commit/96dd70348ad7e31cfeae6d21af70671b41551fe9

New code: https://github.com/apache/airflow/blob/6734eb1d09a99dc519e89a59e2086cef09a87098/airflow/providers/amazon/aws/operators/sagemaker.py#L167

  

### What you expected to happen

When Sagemaker Processing operator is called with a job-name that already exists, the job creation should succeed with a name that is incremented by 1.   

### How to reproduce

invoke SageMakerProcessingOperator twice with the same job name while keeping action_if_job_exists as 'increment'.   

### 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)

"""
        Check if a tuning configuration is valid
        :param tuning_config: tuning_config
        :return: None
        """
        for channel in tuning_config["TrainingJobDefinition"]["InputDataConfig"]:
            if "S3DataSource" in channel["DataSource"]:
                self.check_s3_url(channel["DataSource"]["S3DataSource"]["S3Uri"])
    def multi_stream_iter(self, log_group: str, streams: list, positions=None) -> Generator:
        """
        Iterate over the available events coming from a set of log streams in a single log group
        interleaving the events from each stream so they're yielded in timestamp order.
        :param log_group: The name of the log group.
        :param streams: A list of the log stream names. The position of the stream in this list is
            the stream number.
        :param positions: A list of pairs of (timestamp, skip) which represents the last record
            read from each stream.
        :return: A tuple of (stream number, cloudwatch log event).
        """
        positions = positions or {s: Position(timestamp=0, skip=0) for s in streams}
        event_iters = [
            self.logs_hook.get_log_events(log_group, s, positions[s].timestamp, positions[s].skip)
            for s in streams
        ]
        events: list[Any | None] = []
        for event_stream in event_iters:
            if not event_stream:
                events.append(None)
                continue