This was an issue that caused me a bit of frustration a few months back. (May have changed since then, but this solution likely still holds).
For the table that the user is uploading, I create a “reference” field which is plain text. (However, the unique ID would go here or other matching field. (In this case, call it “company_reference”).
Once the data is uploaded, I schedule an API workflow on a list. (With the list being the CSV uploader’s items).
Within the API workflow, I now fill out the “Company” value for each record, accomplished through a "Do a search for:Companies:first item (with the constraint of Company_Name = company_reference). It’s a bit of a consuming workflow, but works.
It’s ideal if you can use unique identifiers (Bubble’s or self generated) instead of straight text (ex. if you have two Acme, Inc’s, you’d run into issues). Though that may not be ideal from an end-user standpoint.