I'm trying to use the Manage Tile Cache tool (ManageTileCache_management, not the server tool ManageMapServerCacheTiles_server) in a Python script to create a tile cache dataset for some of our data. According to the documentation, it can be used to "create new tiles, replace missing tiles, overwrite outdated tiles, and delete tiles." (Emphasis mine.)
From the descriptions of the in_cache_location and in_cache_name parameters, and being unable to find much in the way of examples, I assumed that passing a value (the dataset name) for in_cache_name would create a tile cache, and passing None (and using the full dataset path in in_cache_location) would update an existing tile cache. I was able to successfully create a tile cache based on this assumption.
you said you were doing this in a script, which suggests that specifying None isn't the same as not specifying anything at all in the call to the function like
param1 = "C:/CacheDatasets/Manage"
param2 = "RECREATE_ALL_TILES"
with nothing else added, since the optional parameters need not be specified in a script, just the **kwargs name