Executing single insert statements on a transactional table effects write performance on a s3 file system. Each insert creates a new delta directory. After each insert hive calculates statistics like number of file in the table and total size of the table. In order to calculate these, it traverses the directory recursively. During the recursion for each path a separate listStatus call is executed. In the end the more delta directory you have the more time it takes to calculate the statistics.
Therefore insertion time goes up linearly:
The fix is to use fs.listFiles(path, /*recursive*/ true) instead the handcrafter recursive method/