yes. Based on the discussion given in this link, i figured that params can be used for computation only and not for meta data. So i made a work around like this
#| output : asis
cat(sprintf("\n\n---\nspecies: %s\n---\n\n", params[["species"]]))
This is a code cell in R with output set to 'asis`. This will return something like this
---
params:
species: Adelie
---
Now the meta data is generated using code.
Update: today I read update to quarto package in R (version 1.5), which enables me to do something like this
library(quarto)
#| output: asis
#| echo: false
write_yaml_metadata_block(params = list(species = params$species))