Each asset should be its own object, capable of knowing whether it needs to be added or updated in the DB.  What if we have 4 assets saved and the user adds one more?  In this case $assets will not be empty and we will call 'updateProgramAssetsToDatabase' which will fail for the 1 new asset.