It is possible to configure CUCM to use an external/3rd party TFTP service instead of the built-in instance - in which case you would likely have more ability to automate population of the external TFTP server's files via whatever mechanisms/APIs it affords.
Otherwise, not aware of any mechanism other than the admin web UI for uploading to the built-in CUCM TFTP. You could likely re-verse engineer that HTTP upload mechanism, but there is no formal API AFAIK.
My apologies I should have included my end goal in my original post. The end goal is to be able to script updating a music on hold audio file which I am not sure you can point to an external/3rd party TFTP services.