You're supposed to use a HEAD request to check whether a document exists, but I can't find a way of doing this from the Python client?
The documentation of Elasticsearch.exists() doesn't say which it uses, but some of the parameters included don't make sense if it's not doing a GET. Puzzlingly, there's also an Elasticsearch.exists_source(), but the documentation doesn't appear to give any clues at all as to what it does.
https://elasticsearch-py.readthedocs.io/en/master/api.html#elasticsearch