### 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
} else if (id.equals(idOfLastHit) == false && collectedIds.add(id)) {
                        ++totalHits;
                    }
                    idOfLastHit = id;
                }
                if (searchResponse.getHits().getHits().length == page.getSize()) {
                    PageParams nextPage = new PageParams(page.getFrom() + page.getSize(), maxResultWindow);
                    recursiveExpandAllTransformIds(
                        collectedIds,
                        totalHits,
                        filterForOutdated,
                        maxResultWindow,
                        idOfLastHit,
                        nextPage,
                        timeout,
                        listener
                    );
                    return;
                }
                listener.onResponse(new Tuple<>(totalHits, collectedIds));
            }, listener::onFailure),
            client::search
        );
    }
    private static Tuple<RestStatus, Throwable> getStatusAndReason(final BulkByScrollResponse response) {
        RestStatus status = RestStatus.OK;
        Throwable reason = new Exception("Unknown error");
        
        
        for (BulkItemResponse.Failure failure : response.getBulkFailures()) {