I found that RetrieverQueryEngine does not support "custom_query_template". I think the document is wrong. However I found a way to add my own template by passing it to response_synthesizer
Yea, the response synthesizer is the thing that ends up using the template.
You can technically pass it into the query engine args, but since you are alredy passing in the response synthesizer, that takes priority (since thats the component that uses the templates)