### Elasticsearch Version

main

### Installed Plugins

_No response_

### Java Version

_bundled_

### OS Version

MacOS

### Problem Description

When there are 2 or more concurrent `_update` requests issued, one of them may fail with `ResourceAlreadyExistsException` exception which is misleading.


### Steps to Reproduce

1. Spawn a number of `_update` requests at the same time
2. Look at the results of these requests
3. Observe `ResourceAlreadyExistsException` being thrown in the case of conflict

### Logs (if relevant)

_No response_
x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/persistence/IndexBasedTransformConfigManager.java
@Override
    public void deleteOldIndices(ActionListener<Boolean> listener) {
        ClusterState state = clusterService.state();
        Set<String> indicesToDelete = new HashSet<>();
        
        try (ThreadContext.StoredContext ctx = client.threadPool().getThreadContext().stashWithOrigin(TRANSFORM_ORIGIN)) {
            indicesToDelete.addAll(
                Arrays.asList(
                    indexNameExpressionResolver.concreteIndexNames(
                        state,
                        IndicesOptions.lenientExpandHidden(),
                        TransformInternalIndexConstants.INDEX_NAME_PATTERN
                    )
                )
            );
            indicesToDelete.addAll(
                Arrays.asList(
                    indexNameExpressionResolver.concreteIndexNames(
                        state,
                        IndicesOptions.lenientExpandHidden(),
                        TransformInternalIndexConstants.INDEX_NAME_PATTERN_DEPRECATED
                    )
                )
            );
            indicesToDelete.remove(TransformInternalIndexConstants.LATEST_INDEX_VERSIONED_NAME);
        }
        if (indicesToDelete.isEmpty()) {
            listener.onResponse(true);
            return;
        }