Do not perform hard check (presence of file on storage)

What does this MR do?

The file.exists? performs disk operation for checking the existence of file.

Instead, we might not do it and fallback to performing soft check: the presence of a value in the column, (artifacts_file, file, etc.)

This will improve performance as we do not perform unnecessary disk IO (file stored locally) or network IO (file stored remotely).

Does this MR meet the acceptance criteria?

What are the relevant issue numbers?

Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/37945