text: Title: set encoding parameters in addition to the original encoding
  Body: ### Is your feature request related to a problem?
  
  When writing to disk with `to_netcdf`, the `encoding` argument causes existing encoding to be dropped. This is described in the [docs](https://docs.xarray.dev/en/latest/generated/xarray.Dataset.to_netcdf.html).
  
  What is a good approach to add encoding parameters in addition to the original encoding? e.g.
  
  ```python
  import rioxarray
  import xarray as xr
  import numpy as np
  
  # make some random dummy netcdf file
  
  data = np.random.rand(4, 4)
  lat = np.linspace(10, 20, 4)
  lon = np.linspace(10, 20, 4)
  
  ds = xr.Dataset({"dummy": (["lat", "lon"], data)}, coords={"lat": lat, "lon": lon})
  
  ds.rio.set_spatial_dims("lon", "lat", inplace=True)
  ds.rio.write_crs("EPSG:4326", inplace=True)
  
  # note the spatial_ref coordinate
  print(ds.dummy)
  ```
  
  ```
  <xarray.DataArray 'dummy' (lat: 4, lon: 4)> Size: 128B
  ...
  Coordinates:
    * lat          (lat) float64 32B 10.0 13.33 16.67 20.0
    * lon          (lon) float64 32B 10.0 13.33 16.67 20.0
      spatial_ref  int64 8B 0
  ```
  
  ```python
  ds.to_netcdf("test.nc", mode="w")
  
  # read it back in - ok
  
  ds2 = xr.open_dataset("test.nc", decode_coords="all")
  
  print(ds2.dummy)
  ```
  
  ```
  <xarray.DataArray 'dummy' (lat: 4, lon: 4)> Size: 128B
  ...
  Coordinates:
    * lat          (lat) float64 32B 10.0 13.33 16.67 20.0
    * lon          (lon) float64 32B 10.0 13.33 16.67 20.0
      spatial_ref  int64 8B ...
  ```
  
  ```python
  # now compress
  
  ds2.to_netcdf("test_compressed.nc", mode="w", encoding={"dummy": {"compression": "zstd"}})
  
  # read it back in - drops the spatial_ref
  
  ds3 = xr.open_dataset("test_compressed.nc", decode_coords="all")
  
  print(ds3.dummy)
  ```
  
  ```
  <xarray.DataArray 'dummy' (lat: 4, lon: 4)> Size: 128B
  ...
  Coordinates:
    * lat      (lat) float64 32B 10.0 13.33 16.67 20.0
    * lon      (lon) float64 32B 10.0 13.33 16.67 20.0
  ```
  
  this is because rioxarray stores "grid_mapping" in the encoding.
  
  so what is a nice generic way to specify encoding in addition to the original encoding?
  
  ```python
  encoding = ds2.dummy.encoding.copy()
  encoding["compression"] = "zstd"
  ds2.to_netcdf("test_compressed_2.nc", mode="w", encoding={"dummy": encoding})
  ```
  
  ```
  ValueError: unexpected encoding parameters for 'netCDF4' backend: ['szip', 'zstd', 'bzip2', 'blosc']. Valid encodings are: ...
  ```
  
  It seems not possible to pass the original encoding back in (even unmodified) due to [additional checks](https://github.com/pydata/xarray/blob/5ea1e81f6ae7728dd9add2e97807f4357287fa6e/xarray/backends/api.py#L1968C1-L1969C1)
  
  ### Describe the solution you'd like
  
  in `to_netcdf()` be able to specify `encoding` in addition to the original encoding
  
  ### Describe alternatives you've considered
  
  _No response_
  
  ### Additional context
  
  _No response_