Populate custom field on file upload?

Revision: regarding editing, instead of editing a row on ContentVersion, the process to be to create a new row on ContentVersion. This allows anyone with access to the ContentDocument row to “edit” standard and custom fields by creating a new version of the document that then becomes the “LastPublishedVersion”.