you cant use the record ID for the file name on insert since the record has not been created yet.
In reality, there isn't a good reason to need the record ID for the file name, the file is already associated to the record by storing the file name in the database.
if you insist on doing this, then you would need to use an insert to create the record, then have the file upload code after the insert and use an update to update the newly created record with the uploaded file name.
you would need to make sure the code order is correct too;
on a busy site, this sort of procedure can cause slow downs due to hitting the database twice for the insert , update.