Check the time that PostgreSQL is taking to automatically create existing indexes when you do bulk insert using copy command from Spark
As long as all indexes are B-tree indexes, modifying them all should take roughly the same time.
Of course, an index with an expensive expression will take somewhat longer, as well as an index on a string column with an expensive collation.
You could compare the duration of CREATE INDEX statements on a filled table – if an index takes twice as long to build as another one, it will probably also take about twice the time to modify.
If the amount of newly loaded data is large, it may be faster to drop and re-create the indexes. You'll have to experiment.