When asking a question it's always good to include a minimal working example so that people know what \documentclass etc you are using. A MWE also makes it easier to answer your question as it frequently helps clarify what the issues are-- and it gives people working code to start from.
There may be a standard biblatex way of doing this but, failing that, I suggest creating a new boolean, say \ifCiting, and then redefining \cite so that it first sets \Citingtrue and then uses the real \cite command. You can then use \ifCiting...\fi to print your bibliography section, or not.
Here's one way to do this:
\documentclass{article}
\usepackage{biblatex}
\let\realCite\cite% save the orginal \cite macro as \realCite for future use
\newif\ifCiting\Citingfalse% no citations by default
\renewcommand\cite[2][]{% optional argument is empty by default
\Citingtrue% we have at least one citation!
\if\relax\detokenize{#1}\relax% no optional argument
\realCite{#2}%
\else% an optional argument
\realCite[#1]{#2}%
\fi%
}
\begin{document}
\ifCiting
\clearpage
\section{Sources}
\printbibliography
\clearpage
\fi
\end{document}
This only tricky bit is in checking to see whether or not the optional argument to \cite is "empty". The standard way of doing this is the line \if\relax\detokenize{#1}\relax.
Edit
As Skillmon pointed out in the comments, a much more efficient (and "globally" correct) solution is:
\documentclass{article}
\usepackage{biblatex}
\let\realCite\cite% save the orginal \cite macro for future use
\newif\ifCiting\Citingfalse% no citations by default
\renewcommand*\cite{\global\Citingtrue\realCite}
\begin{document}
\ifCiting
\clearpage
\section{Sources}
\printbibliography
\clearpage
\fi
\end{document}
ifnumexample in thetotcountdocumentation (Section 6). – Marijn Dec 05 '17 at 13:02