Update user meta without lose of old data

If I understand problem correctly, you want to store name of multiple files in user meta field. add_user_meta function has fourth argument $unique which is false by default that means for each call to add_user_meta a new key-value pair is added, even if key already exists.

add_user_meta has less clarification then the add_post_meta that does exactly same thing for posts. Here it says, how it works

Note that if the given key already exists among custom fields of the
specified post, another custom field with the same key is added unless
the $unique argument is set to true, in which case, no changes are
made. If you want to update the value of an existing key, use the
update_post_meta() function instead.

So, you while uploading a file you will call add_user_meta with a new filename.

add_user_meta($user_id, 'user_documents','filename.txt');

Each time it will add a new pair, that can be fetched using get_user_meta function

get_user_meta($user_id, 'user_documents'); // set $single to false to fetch all values against 'user_documents' key.

It will return an array of all values stored against ‘user_documents’.

To update a filename, you will need to provide filename against which you want to update.

update_user_meta($user_id, 'user_documents', 'filename.txt','new_filename.txt');

or you can delete a file by specifying the particular file name.

delete_user_meta($user_id, 'user_documents', 'filename.txt')

I hope, it clarifies how you would go for it.