You can do it with the create course function but you have to pretend to have uploaded the image file. I am doing this from memory so you may need to check my logic. The field holding the image is overviewfiles_filemanager and its value would normally be the image file's draftitemid. I am assuming that the image is already on the server so using the File API, you get an unused the draftitemid, copy the existing file to the draft area and set the field to the draftitemid before calling create_course().
Hope I am making sense.