From what i remember the location is correct, because i tested someother things there too before some time.
But to be safe i checked the /etc/init/tvheadend.conf and it says:
...existingCode...
script
[ -r /etc/default/tvheadend ] && . /etc/default/tvheadend
[ "$TVH_ENABLED" = "1" ] || exit 0
ARGS="-f"
[ -z "$TVH_USER" ] || ARGS="$ARGS -u $TVH_USER"
[ -z "$TVH_GROUP" ] || ARGS="$ARGS -g $TVH_GROUP"
[ -z "$TVH_CONF_DIR" ] || ARGS="$ARGS -c $TVH_CONF_DIR"
[ -z "$TVH_ADAPTERS" ] || ARGS="$ARGS -a $TVH_ADAPTERS"
[ "$TVH_IPV6" = "1" ] && ARGS="$ARGS -6"
[ -z "$TVH_HTTP_PORT" ] || ARGS="$ARGS --http_port $TVH_HTTP_PORT"
[ -z "$TVH_HTTP_ROOT" ] || ARGS="$ARGS --http_root $TVH_HTTP_ROOT"
[ -z "$TVH_HTSP_PORT" ] || ARGS="$ARGS --htsp_port $TVH_HTSP_PORT"
[ "$TVH_DEBUG" = "1" ] && ARGS="$ARGS -s"
exec tvheadend $ARGS $TVH_ARGS
end script
So yes, /etc/default/tvheadend ist the right spot for $TVH_ARGS.
I cannot clearly say if your specific "--satip_xml" argument is in the right Spot there or if it should be placed somewhere else but what you can check is, if the /etc/default/tvheadend file it self have the right permissions.
The owner and group should be root:root and the Permissions should be 0644.