I don't know if it is possible to get helm-bibtex to insert links with pre/post text in a way that doesn't get in the (i.e. my) way. I never use pre/post text, so I want to select entries, and press enter to insert them. There would have to be some prompt for pre and post text I think, and I wouldn't want to press enter two more times to get empty ones.
#+BEGIN_SRC emacs-lisp
(defun my-insert (candidate)
(insert (format "[[cite:%s]%s]"
candidate
(let ((pre (read-input "pre-text: "))
(post (read-input "post text: ")))
(cond
;; both pre and post
((and (not (string= pre ""))
(not (string= post "")))
(format "[%s::%s]" pre post))
;; only pre
((and (not (string= pre ""))
(string= post ""))
(format "[%s]" pre))
((and (not (string= post ""))
(string= pre ""))
(format "[::%s]" post)))))))
(helm-add-action-to-source "pre/post insert cite" 'my-insert
helm-source-bibtex)
#+END_SRC
we already use C-u to insert a ref link, and C-u C-u to insert a label link on C-c ] (which inserts a citation).