Thanks, the links are quite useful.
In case others who want to achieve something similar, this is how I did it:
----Update the map objects/ attribute----
1. Prepare data to be imported so it has all the information and columns
2. Upload data file to AGOL (gis.content.add)
3. Analyse data file if it is a CSV or XLSX (gis.content.analyze)
4.Update/ Append Data to existing layer (.append)
----Upload the photos----
5.Get the list of attachment/ photos that are already in that layer so you don't reupload them (Lyr_to_Update.attachments.search(where=a Query to include all records ,as_df=True)
This generates a dataframe with all attachments and their information.
6.Exclude the attachments in the above dataframe from your file that links the photo and map object.
7.Loop through the remaining entries in your file to upload photo to AGOL.