A coordinate in TikZ is a special form of node. The coordinate x/y etc. values of a node is stored in a macro named \pgf@sh@np@<name> which existence you can test. The following code should do it and support most variations of the \coordinate syntax. Supporting the \path coordinate syntax, i.e. allow for \path providecoordinate is not possible without extensively hacking into the path parsing code.
\documentclass{article}
\usepackage{tikz}
\makeatletter
\newcommand{\providecoordinate}[1][]{%
\@providecoordinate[#1]%
}
\def\@providecoordinate[#1]#2(#3)#4;{%
\ifcsname pgf@sh@np@#3\endcsname\else
\coordinate[#1]#2(#3)#4;
\fi
}
\makeatother
\begin{document}
\begin{tikzpicture}
\providecoordinate [] (A) at (0,0);
\coordinate (B) at (0,0);
\providecoordinate (B) at (1,0);
% Small test: Both at the same location? YES!
\draw [red] (A) circle (1pt);
\draw [green] (B) circle (2pt);
\end{tikzpicture}
\end{document}